home *** CD-ROM | disk | FTP | other *** search
/ Meeting Pearls 1 / Meeting Pearls Vol 1 (1994).iso / installed_progs / text / faqs / ai-faq.genetic.part2 < prev    next >
Encoding:
Internet Message Format  |  1994-03-19  |  47.8 KB

  1. Subject: FAQ: comp.ai.genetic part 2/6 (A Guide to Frequently Asked Questions)
  2. Newsgroups: comp.ai.genetic,comp.answers,news.answers
  3. From: David.Beasley@cf.cm.ac.uk (David Beasley)
  4. Date: Fri, 18 Mar 94 15:18:56 GMT
  5.  
  6. Archive-name:   ai-faq/genetic/part2
  7. Last-Modified:  3/20/94
  8. Issue:          2.1
  9.  
  10.  
  11. TABLE OF CONTENTS OF PART 2
  12.      Q1: What are Evolutionary Algorithms (EAs)?
  13.      Q1.1: What's a Genetic Algorithm (GA)?
  14.      Q1.2: What's Evolutionary Programming (EP)?
  15.      Q1.3: What's an Evolution Strategy (ES)?
  16.      Q1.4: What's a Classifier System (CFS)?
  17.      Q1.5: What's Genetic Programming (GP)?
  18.  
  19. ----------------------------------------------------------------------
  20.  
  21. Subject: Q1: What are Evolutionary Algorithms (EAs)?
  22.  
  23.      Evolutionary  algorithms  use  computational  models  of evolutionary
  24.      processes as  key  elements  in  the  design  and  implementation  of
  25.      computer-based  problem  solving  systems.  A variety of evolutionary
  26.      computational  models  have  been  proposed.  They  share  a   common
  27.      conceptual  base of simulating the EVOLUTION of INDIVIDUAL structures
  28.      via  processes  of  SELECTION,  MUTATION,  and   REPRODUCTION.    The
  29.      processes  depend  on  the  perceived  PERFORMANCE  of the individual
  30.      structures as defined by an ENVIRONMENT.
  31.  
  32.      More precisely, EAs maintain a POPULATION of structures, that  evolve
  33.      according  to  rules  of  SELECTION  and  other  operators,  that are
  34.      referred to as "search operators", (or GENETIC  OPERATORs),  such  as
  35.      RECOMBINATION  and  MUTATION.   Each  INDIVIDUAL  in  the  population
  36.      receives a measure of it's FITNESS in the ENVIRONMENT.   REPRODUCTION
  37.      focuses  attention  on high fitness individuals, thus exploiting (cf.
  38.      EXPLOITATION) the available fitness information.   Recombination  and
  39.      mutation  perturb those individuals, providing general heuristics for
  40.      EXPLORATION.  Although simplistic from a biologist's viewpoint, these
  41.      algorithms  are  sufficiently  complex to provide robust and powerful
  42.      adaptive search mechanisms.
  43.  
  44.      --- "An Overview of Evolutionary Computation" [ECML93], 442-459.
  45.  
  46.  PSEUDO CODE
  47.      Algorithm EA is
  48.  
  49.       // start with an initial time
  50.       t := 0;
  51.  
  52.       // initialize a usually random population of individuals
  53.       initpopulation P (t);
  54.  
  55.       // evaluate fitness of all initial individuals in population
  56.       evaluate P (t);
  57.  
  58.       // test for termination criterion (time, fitness, etc.)
  59.       while not done do
  60.  
  61.            // increase the time counter
  62.            t := t + 1;
  63.  
  64.            // select sub-population for offspring production
  65.            P' := selectparents P (t);
  66.  
  67.            // recombine the "genes" of selected parents
  68.            recombine P' (t);
  69.  
  70.            // perturb the mated population stochastically
  71.            mutate P' (t);
  72.  
  73.            // evaluate it's new fitness
  74.            evaluate P' (t);
  75.  
  76.            // select the survivors from actual fitness
  77.            P := survive P,P' (t);
  78.       od
  79.      end EA.
  80.  
  81. ------------------------------
  82.  
  83. Subject: Q1.1: What's a Genetic Algorithm (GA)?
  84.  
  85.      The GENETIC ALGORITHM is a model of machine  learning  which  derives
  86.      its behavior from a metaphor of the processes of EVOLUTION in nature.
  87.      This is done by the creation within a  machine  of  a  POPULATION  of
  88.      INDIVIDUALs represented by CHROMOSOMEs, in essence a set of character
  89.      strings that are analogous to the base-4 chromosomes that we  see  in
  90.      our  own  DNA.   The  individuals in the population then go through a
  91.      process of evolution.
  92.  
  93.      We should note that EVOLUTION (in nature or anywhere else) is  not  a
  94.      purposive  or  directed  process.   That  is, there is no evidence to
  95.      support the assertion that  the  goal  of  evolution  is  to  produce
  96.      Mankind.  Indeed,  the  processes  of  nature  seem  to  boil down to
  97.      different INDIVIDUALs competing for  resources  in  the  ENVIRONMENT.
  98.      Some are better than others. Those that are better are more likely to
  99.      survive and propagate their genetic material.
  100.  
  101.      In nature, we see that  the  encoding  for  our  genetic  information
  102.      (GENOME)  is  done in a way that admits asexual REPRODUCTION (such as
  103.      by budding) typically  results  in  OFFSPRING  that  are  genetically
  104.      identical  to the PARENT.  Sexual REPRODUCTION allows the creation of
  105.      genetically radically different offspring that are still of the  same
  106.      general flavor (SPECIES).
  107.  
  108.      At  the  molecular level what occurs (wild oversimplification alert!)
  109.      is that a pair of CHROMOSOMEs bump into one another, exchange  chunks
  110.      of  genetic  information  and  drift apart. This is the RECOMBINATION
  111.      operation, which GA/GPers generally refer to as CROSSOVER because  of
  112.      the  way  that  genetic  material crosses over from one chromosome to
  113.      another.
  114.  
  115.      The CROSSOVER operation happens in an ENVIRONMENT where the SELECTION
  116.      of  who  gets to mate is a function of the FITNESS of the INDIVIDUAL,
  117.      i.e. how good the individual is  at  competing  in  its  environment.
  118.      Some  GENETIC ALGORITHMs use a simple function of the fitness measure
  119.      to  select  individuals  (probabilistically)   to   undergo   genetic
  120.      operations  such  as  crossover  or  REPRODUCTION (the propagation of
  121.      genetic   material   unaltered).    This   is   fitness-proportionate
  122.      selection.   Other  implementations  use  a  model  in  which certain
  123.      randomly selected individuals in a subgroup compete and  the  fittest
  124.      is  selected.  This is called tournament selection and is the form of
  125.      selection we see in nature when stags rut to vie for the privilege of
  126.      mating  with  a herd of hinds. The two processes that most contribute
  127.      to EVOLUTION are crossover and fitness based  selection/reproduction.
  128.  
  129.      As it turns out, there are mathematical proofs that indicate that the
  130.      process of FITNESS  proportionate  REPRODUCTION  is,  in  fact,  near
  131.      optimal in some senses.
  132.  
  133.      MUTATION  also  plays  a  role  in this process, though it is not the
  134.      dominant role that  is  popularly  believed  to  be  the  process  of
  135.      EVOLUTION,  i.e.  random  mutation  and  survival  of the fittest. It
  136.      cannot be stressed too strongly that  the  GENETIC  ALGORITHM  (as  a
  137.      SIMULATION  of  a  genetic  process)  is  not a "random search" for a
  138.      solution to a problem (highly fit INDIVIDUAL).  The genetic algorithm
  139.      uses  stochastic  processes,  but the result is distinctly non-random
  140.      (better than random).
  141.  
  142.      GENETIC ALGORITHMs are used for a  number  of  different  application
  143.      areas.  An  example  of  this  would be multidimensional OPTIMIZATION
  144.      problems in which the character string of the CHROMOSOME can be  used
  145.      to encode the values for the different parameters being optimized.
  146.  
  147.      In  practice,  therefore,  we  can  implement  this  genetic model of
  148.      computation by having arrays of bits or characters to  represent  the
  149.      CHROMOSOMEs.    Simple   bit   manipulation   operations   allow  the
  150.      implementation of CROSSOVER, MUTATION and other operations.  Although
  151.      a  substantial  amount  of  research  has been performed on variable-
  152.      length strings and  other  structures,  the  majority  of  work  with
  153.      GENETIC  ALGORITHMs is focussed on fixed-length character strings. We
  154.      should focus on both this aspect of fixed-lengthness and the need  to
  155.      encode the representation of the solution being sought as a character
  156.      string, since these are  crucial  aspects  that  distinguish  GENETIC
  157.      PROGRAMMING,  which  does  not have a fixed length representation and
  158.      there is typically no encoding of the problem.
  159.  
  160.      When the GENETIC ALGORITHM is implemented it is  usually  done  in  a
  161.      manner that involves the following cycle: Evaluate the FITNESS of all
  162.      of the INDIVIDUALs in the POPULATION.  Create  a  new  population  by
  163.      performing   operations   such  as  CROSSOVER,  fitness-proportionate
  164.      REPRODUCTION and MUTATION on the individuals whose fitness  has  just
  165.      been  measured.  Discard the old population and iterate using the new
  166.      population.
  167.  
  168.      One iteration of this loop is referred to as a GENERATION.  There  is
  169.      no  theoretical  reason for this as an implementation model.  Indeed,
  170.      we do not see this punctuated behavior in POPULATIONs in nature as  a
  171.      whole, but it is a convenient implementation model.
  172.  
  173.      The  first  GENERATION  (generation  0) of this process operates on a
  174.      POPULATION of randomly generated INDIVIDUALs.   From  there  on,  the
  175.      genetic  operations,  in concert with the FITNESS measure, operate to
  176.      improve the population.
  177.  
  178.  PSEUDO CODE
  179.      Algorithm GA is
  180.  
  181.       // start with an initial time
  182.       t := 0;
  183.  
  184.       // initialize a usually random population of individuals
  185.       initpopulation P (t);
  186.  
  187.       // evaluate fitness of all initial individuals of population
  188.       evaluate P (t);
  189.  
  190.       // test for termination criterion (time, fitness, etc.)
  191.       while not done do
  192.  
  193.            // increase the time counter
  194.            t := t + 1;
  195.  
  196.            // select a sub-population for offspring production
  197.            P' := selectparents P (t);
  198.  
  199.            // recombine the "genes" of selected parents
  200.            recombine P' (t);
  201.  
  202.            // perturb the mated population stochastically
  203.            mutate P' (t);
  204.  
  205.            // evaluate it's new fitness
  206.            evaluate P' (t);
  207.  
  208.            // select the survivors from actual fitness
  209.            P := survive P,P' (t);
  210.       od
  211.      end GA.
  212.  
  213. ------------------------------
  214.  
  215. Subject: Q1.2: What's Evolutionary Programming (EP)?
  216.  
  217.   Introduction
  218.      EVOLUTIONARY  PROGRAMMING  is  a  stochastic  OPTIMIZATION   strategy
  219.      similar   to  GENETIC  ALGORITHMs,  but  which  dispenses  with  both
  220.      "genomic" representations and with CROSSOVER as a search strategy.
  221.  
  222.      Like GENETIC ALGORITHMs, the EP technique is  useful  for  optimizing
  223.      problem  solutions  when  other  techniques  like gradient descent or
  224.      direct, analytical discovery  are  not  possible.   Combinatoric  and
  225.      real-valued  FUNCTION  OPTIMIZATION in which the OPTIMIZATION surface
  226.      or "fitness landscape" is "rugged", possessing many  locally  optimal
  227.      solutions, are well-suited for the EP technique.
  228.  
  229.   History
  230.      The  1966 book, "Artificial Intelligence Through Simulated Evolution"
  231.      by  Fogel,  Owens  and  Walsh  is  the   landmark   publication   for
  232.      applications of the EP technique.  In the work, automata were evolved
  233.      to predict symbol strings generated from Markov processes.
  234.  
  235.      In 1992, the First Annual Conference on EVOLUTIONARY PROGRAMMING  was
  236.      held  in  La  Jolla,  CA.   A  second was held in 1993 and a third is
  237.      planned for 1994.  The first conference attracted a diverse group  of
  238.      academic,  commericial  and  military  researchers  engaged  in  both
  239.      developing the theory of the EP technique and in  applying  EP  to  a
  240.      wide range of OPTIMIZATION problems.
  241.  
  242.      Rather  than  list and analyze the sources in detail, I have included
  243.      several fundamental sources below which should serve as good pointers
  244.      to the entire body of work in the field.
  245.  
  246.   The Process
  247.      For  EP, like GAs, there is an underlying assumption that a "fitness"
  248.      landscape can be characterized in terms of variables, and that  there
  249.      is  an optimum solution in terms of those variables.  For example, if
  250.      one were trying to find the shortest path  in  a  Traveling  Salesman
  251.      Problem, each solution would be a path.  The length of the path could
  252.      be expressed as  a  number,  which  would  serve  as  the  solution's
  253.      "fitness".   The  "fitness  landscape"  for  this  problem  could  be
  254.      characterized as a hypersurface proportional to the path lengths in a
  255.      space  of  possible  paths.   The  goal would be to find the globally
  256.      shortest path in that space.
  257.  
  258.      The basic EP method involves 3 steps (Repeat until  a  threshold  for
  259.      iteration is exceeded or an adequate solution is obtained):
  260.  
  261.      (1)  Choose  an initial POPULATION of trial solutions at random.  The
  262.       number of solutions in a population is highly  relevant  to  the
  263.       speed  of OPTIMIZATION, but no definite answers are available as
  264.       to how many solutions are appropriate (other than  >1)  and  how
  265.       many solutions are just wasteful.
  266.  
  267.      (2)  Each  solution  is  replicated  into  a new POPULATION.  Each of
  268.       these  OFFSPRING  solutions   are   mutated   according   to   a
  269.       distribution  of  MUTATION  types, ranging from minor to extreme
  270.       with a continuum of mutation types between.
  271.  
  272.      (3)  Each OFFSPRING solution is assessed by computing  it's  FITNESS.
  273.       The  N  best  solutions,  or  *stochastically*  N  of  the  best
  274.       solutions, are retained for the next POPULATION of solutions.
  275.   EP and GAs
  276.      There are two important ways in which the EP method differs from  the
  277.      GA technique.
  278.  
  279.      First,  there is no constraint on the representation.  The typical GA
  280.      approach involves encoding the  problem  solutions  as  a  string  of
  281.      representative  tokens,  the  "genome".   In  the  EP  approach,  the
  282.      representation follows from the problem.  A  neural  network  can  be
  283.      represented  in  the  same  manner as it is implemented, for example,
  284.      because the MUTATION operation does not demand a linear encoding.
  285.  
  286.      Second, the MUTATION operation simply changes aspects of the solution
  287.      according   to   a   statistical  distribution  which  weights  minor
  288.      variations in OFFSPRING as highly probable and substantial variations
  289.      as  increasingly unlikely as the global optimum is approached.  There
  290.      is a certain tautology here: if the global  optimum  is  not  already
  291.      known,  how can the spread of the mutation operation be damped as the
  292.      solutions approach it?  Several techniques  have  been  proposed  and
  293.      implemented  which  address  this difficulty, the most widely studied
  294.      being the "Meta-Evolutionary" technique  (see  Sources,  below  )  in
  295.      which  the  variance  of  the  mutation  distribution  is  subject to
  296.      mutation by a fixed variance mutation operator and evolves along with
  297.      the solution.
  298.  
  299.   Evolution and Sex: The Argumentative Side of EP
  300.      CROSSOVER   as  an  abstraction  of  sexual  RECOMBINATION  has  been
  301.      questioned on several fronts by the EP community.
  302.  
  303.      The strongest criticisms have been raised  by  Atmar  (1992)  in  his
  304.      introductory papers in the first EP conference proceedings as well as
  305.      his substantially  biological  "On  the  Role  of  Males"  in  Animal
  306.      Behavior (1991).  Atmar criticizes the use of terminology, indicating
  307.      that "crossing-over" is a process that occurs  prior  to  sex  during
  308.      meiotic cell division and its actual role in EVOLUTION is not clearly
  309.      understood.  More than just simple semantics, he argues a reversal of
  310.      the  common  assumption that sex acts as an accelerator of diversity,
  311.      instead casting sex as a mechanism for expunging genetic defects from
  312.      the germline.
  313.  
  314.      Atmar additionally argues that simplistic encodings of parameters for
  315.      OPTIMIZATION in GENETIC ALGORITHMs where one "trait" is equivalent to
  316.      one symbol pattern in the GENOME misrepresents the process of natural
  317.      SELECTION and miscontrues cause and effect.  He  argues  instead  for
  318.      selection  at the phenotypic level.  He characterizes the EP approach
  319.      as being "top down" in that expressed variation at the level  of  the
  320.      PHENOTYPE is selected without concern for the representation at lower
  321.      levels, while the GA approach "celebrates" coding details potentially
  322.      to the exclusion of arriving at optimal solutions.
  323.  
  324.      Several  empirical  evaluations  of  the value of CROSSOVER have been
  325.      reported, all of which suggest that the value  of  crossover  is  not
  326.      clear.
  327.  
  328.      References
  329.  
  330.      Some  references  to  proceedings,  books  and journal articles which
  331.      provide an excellent introduction (by  no  means  extensive)  to  the
  332.      field, include:
  333.  
  334.      Fogel,  LJ,  Owens,  AJ and Walsh, MJ (1966) "Artificial Intelligence
  335.      Through Simulated Evolution," John Wiley and Sons, NY. [primary]
  336.  
  337.      Fogel, DB and Atmar, JW, (eds.)  (1992)  "Proceedings  of  the  First
  338.      Annual   Conference   on   Evolutionary   Programming,"  EVOLUTIONARY
  339.      PROGRAMMING Society, San Diego, CA. [primary]
  340.  
  341.      Atmar, JW (1991) "On the Role of Males," Animal Behavior,  Vol.   41,
  342.      pp. 195-205. [biological]
  343.  
  344.      Ambati, BK, Ambati, J and Mokhtar, MM (1991) "Heuristic Combinatorial
  345.      Optimization by Simulated  Darwinian  Evolution:  A  Polynomial  Time
  346.      Algorithm   for   the   Traveling   Salesman   Problem,"   Biological
  347.      Cybernetics, Vol. 65, pp 31-35. [mathematical]
  348.  
  349.      Sebald, AV, Schlenzig, J and Fogel, DB (1991) "Minimax Design of CMAC
  350.      Neural Controllers Using Evolutionary Programming," Proc. of the 25th
  351.      Asilomar Conf. on Signals, Systems and  Computers,  Chen,  RR  (ed.),
  352.      Pacific Grove, CA, pp 551-555. [practical]
  353.  
  354.  PSEUDO CODE
  355.      Algorithm EP is
  356.  
  357.       // start with an initial time
  358.       t := 0;
  359.  
  360.       // initialize a usually random population of individuals
  361.       initpopulation P (t);
  362.  
  363.       // evaluate fitness of all initial individuals of population
  364.       evaluate P (t);
  365.  
  366.       // test for termination criterion (time, fitness, etc.)
  367.       while not done do
  368.  
  369.            // increase the time counter
  370.            t := t + 1;
  371.  
  372.            // perturb the whole population stochastically
  373.            P' := mutate P (t);
  374.  
  375.            // evaluate it's new fitness
  376.            evaluate P' (t);
  377.  
  378.            // select the survivors from actual fitness
  379.            P := survive P,P' (t);
  380.       od
  381.      end EP.
  382.  
  383.      It  should  be  pointed  out  that EP does not use any CROSSOVER as a
  384.      GENETIC OPERATOR.
  385.  
  386. ------------------------------
  387.  
  388. Subject: Q1.3: What's an Evolution Strategy (ES)?
  389.  
  390.      In 1963 two students at the Technical University of Berlin (TUB)  met
  391.      and  were  soon  to  collaborate  on  experiments which used the wind
  392.      tunnel of the Institute of Flow Engineering.  During the  search  for
  393.      the  optimal  shapes  of bodies in a flow, which was then a matter of
  394.      laborious  intuitive  experimentation,  the  idea  was  conceived  of
  395.      proceeding  strategically.  However, attempts with the coordinate and
  396.      simple gradient strategies (cf Q5) were unsuccessful.   Then  one  of
  397.      the   students,   Ingo  Rechenberg,  now  Professor  of  Bionics  and
  398.      Evolutionary Engineering, hit upon the idea of trying random  changes
  399.      in  the  parameters  defining  the  shape,  following  the example of
  400.      natural  MUTATIONs.   The  EVOLUTION  STRATEGY  was  born.   A  third
  401.      student,  Peter  Bienert, joined them and started the construction of
  402.      an automatic experimenter, which would work according to  the  simple
  403.      rules  of  mutation  and  SELECTION.   The  second student, Hans-Paul
  404.      Schwefel, set about testing the efficiency of the  new  methods  with
  405.      the  help of a Zuse Z23 computer; for there were plenty of objections
  406.      to these "random strategies."
  407.      In spite of an occasional lack of financial support, the Evolutionary
  408.      Engineering  Group  which  had been formed held firmly together. Ingo
  409.      Rechenberg received  his  doctorate  in  1970  (Rechenberg  73).   It
  410.      contains  the  theory  of  the  two membered EVOLUTION STRATEGY and a
  411.      first proposal for a multimembered strategy which in the nomenclature
  412.      introduced  here  is  of the (m+1) type.   In the same year financial
  413.      support from  the  Deutsche  Forschungsgemeinschaft  (DFG,  Germany's
  414.      National Science Foundation) enabled the work, that was concluded, at
  415.      least temporarily, in 1974 with the thesis  "Evolutionsstrategie  und
  416.      numerische Optimierung" (Schwefel 77).
  417.  
  418.      Thus,   EVOLUTION   STRATEGIEs   were  invented  to  solve  technical
  419.      OPTIMIZATION  problems  (TOPs)  like  e.g.  constructing  an  optimal
  420.      flashing  nozzle,  and  until  recently  ES  were only known to civil
  421.      engineering folks, as an alternative to standard solutions.   Usually
  422.      no  closed  form  analytical objective function is available for TOPs
  423.      and  hence,  no  applicable  optimization  method  exists,  but   the
  424.      engineer's intuition.
  425.  
  426.      The  first  attempts  to imitate principles of organic EVOLUTION on a
  427.      computer still resembled the iterative OPTIMIZATION methods known  up
  428.      to  that  time  (cf  Q5):   In a two-membered or (1+1) ES, one PARENT
  429.      generates  one  OFFSPRING  per  GENERATION   by   applying   NORMALLY
  430.      DISTRIBUTED  MUTATIONs, i.e. smaller steps occur more likely than big
  431.      ones, until a child performs better than its ancestor and  takes  its
  432.      place.  Because  of  this  simple  structure, theoretical results for
  433.      STEPSIZE control and CONVERGENCE VELOCITY could be derived. The ratio
  434.      between  successful  and  all  mutations  should come to 1/5: the so-
  435.      called 1/5 SUCCESS RULE was discovered. This first  algorithm,  using
  436.      mutation  only,  has  then  been  enhanced  to a (m+1) strategy which
  437.      incorporated RECOMBINATION due  to  several,  i.e.  m  parents  being
  438.      available.  The  mutation  scheme  and the exogenous stepsize control
  439.      were taken across unchanged from  (1+1) ESs.
  440.  
  441.      Schwefel later generalized these strategies to the  multimembered  ES
  442.      now  denoted  by  (m+l)  and (m,l) which imitates the following basic
  443.      principles  of  organic  EVOLUTION:  a  POPULATION,  leading  to  the
  444.      possibility   of  RECOMBINATION  with  random  mating,  MUTATION  and
  445.      SELECTION.  These strategies  are  termed  PLUS  STRATEGY  and  COMMA
  446.      STRATEGY,  respectively: in the plus case, the parental GENERATION is
  447.      taken into account during selection, while in the comma case only the
  448.      OFFSPRING  undergoes selection, and the PARENTs die off. m (usually a
  449.      lowercase mu, denotes the population size, and l, usually a lowercase
  450.      lambda denotes the number of offspring generated per generation).  Or
  451.      to put  it  in  an  utterly  insignificant  and  hopelessly  outdated
  452.      language:
  453.  
  454.       (define (Evolution-strategy population)
  455.         (if (terminate? population)
  456.           population
  457.           (evolution-strategy
  458.         (select
  459.           (cond (plus-strategy?
  460.               (union (mutate
  461.                    (recombine population))
  462.                  population))
  463.             (comma-strategy?
  464.               (mutate
  465.                 (recombine population))))))))
  466.  
  467.      However,  dealing  with ES is sometimes seen as "strong tobacco," for
  468.      it takes a decent amount of probability theory and applied STATISTICS
  469.      to understand the inner workings of an ES, while it navigates through
  470.      the  hyperspace  of  the  usually  n-dimensional  problem  space,  by
  471.      throwing hyperelipses into the deep...
  472.  
  473.      Luckily,  this  medium  doesn't allow for much mathematical ballyhoo;
  474.      the author therefore has to come up with  a  simple  but  brilliantly
  475.      intriguing  explanation to save the reader from falling asleep during
  476.      the rest of this section, so here we go:
  477.  
  478.      Imagine a black box. A large black box. As large as, say for example,
  479.      a Coca-Cola vending machine. Now, [..] (to be continued)
  480.  
  481.      A  single  INDIVIDUAL of the ES' POPULATION consists of the following
  482.      GENOTYPE representing a point in the SEARCH SPACE:
  483.  
  484.      OBJECT VARIABLES
  485.       Real-valued x_i have to be tuned by RECOMBINATION  and  MUTATION
  486.       such  that  an  objective  function  reaches its global optimum.
  487.       Referring  to  the  metaphor  mentioned  previously,   the   x_i
  488.       represent the regulators of the alien Coka-Cola vending machine.
  489.  
  490.      STRATEGY VARIABLEs
  491.       Real-valued s_i (usually denoted by a lowercase sigma)  or  mean
  492.       STEPSIZEs  determine  the  mutability of the x_i. They represent
  493.       the STANDARD DEVIATION of a  (0, s_i) GAUSSIAN DISTRIBUTION (GD)
  494.       being  added  to  each  x_i  as an undirected MUTATION.  With an
  495.       "expectancy value" of 0  the  PARENTs  will  produce  OFFSPRINGs
  496.       similar  to  themselves  on average. In order to make a doubling
  497.       and a halving of a stepsize equally  probable,  the  s_i  mutate
  498.       log-normally,  distributed,  i.e.   exp(GD),  from GENERATION to
  499.       generation.   These  stepsizes  hide  the  internal  model   the
  500.       POPULATION  has  made of its ENVIRONMENT, i.e. a SELF-ADAPTATION
  501.       of the stepsizes has replaced the exogenous control of the (1+1)
  502.       ES.
  503.  
  504.       This  concept  works  because  SELECTION sooner or later prefers
  505.       those INDIVIDUALs having built a good  model  of  the  objective
  506.       function,  thus  producing  better  OFFSPRING.   Hence, learning
  507.       takes place on two levels: (1) at the genotypic, i.e. the object
  508.       and  STRATEGY  VARIABLE  level  and (2) at the phenotypic level,
  509.       i.e. the FITNESS level.
  510.  
  511.       Depending  on  an  individual's  x_i,  the  resulting  objective
  512.       function  value  f(x),  where  x denotes the vector of objective
  513.       variables, serves as the PHENOTYPE (FITNESS)  in  the  SELECTION
  514.       step.  In  a  PLUS STRATEGY, the m best of all (m+l) INDIVIDUALs
  515.       survive to become the PARENTs of the next GENERATION.  Using the
  516.       comma variant, selection takes place only among the l OFFSPRING.
  517.       The  second  scheme  is  more  realistic  and   therefore   more
  518.       successful,  because  no  individual  may survive forever, which
  519.       could at least  theoretically  occur  using  the  plus  variant.
  520.       Untypical for conventional OPTIMIZATION algorithms and lavish at
  521.       first   sight,   a   COMMA   STRATEGY   allowing    intermediate
  522.       deterioration  performs  better!  Only  by forgetting highly fit
  523.       individuals can a permanent adaptation  of  the  STEPSIZEs  take
  524.       place  and avoid long stagnation phases due to misadapted s_i's.
  525.       This means that these individuals have built an  internal  model
  526.       that  is  no  longer  appropriate for further progress, and thus
  527.       should better be discarded.
  528.  
  529.       By  choosing  a  certain  ratio  m/l,  one  can  determine   the
  530.       convergence  property  of the EVOLUTION STRATEGY: If one wants a
  531.       fast, but local convergence, one  should  choose  a  small  HARD
  532.       SELECTION,  ratio,  e.g.  (5,100),  but  looking  for the global
  533.       optimum, one should favour a softer SELECTION (15,100).
  534.  
  535.       SELF-ADAPTATION within  ESs  depends  on  the  following  agents
  536.       (Schwefel 87):
  537.  
  538.      Randomness:
  539.       One cannot model MUTATION as a purely random process. This would
  540.       mean that a child is completely independent of its PARENTs.
  541.  
  542.      POPULATION
  543.       size: The POPULATION has to be sufficiently large. Not only  the
  544.       current  best  should be allowed to reproduce, but a set of good
  545.       INDIVIDUALs.   Biologists  have  coined  the   term   "requisite
  546.       variety"  to  mean  the  genetic  variety necessary to prevent a
  547.       SPECIES  from  becoming  poorer  and  poorer   genetically   and
  548.       eventually dying out.
  549.  
  550.      COOPERATION:
  551.       In  order  to  exploit  the effects of a POPULATION (m > 1), the
  552.       INDIVIDUALs should recombine their knowledge with that of others
  553.       (cooperate)   because   one   cannot  expect  the  knowledge  to
  554.       accumulate in the best individual only.
  555.  
  556.      Deterioration:
  557.       In order to allow better internal models (STEPSIZEs) to  provide
  558.       better  progress  in the future, one should accept deterioration
  559.       from one GENERATION to the next. A limited life-span  in  nature
  560.       is not a sign of failure, but an important means of preventing a
  561.       SPECIES from freezing genetically.
  562.  
  563.       ESs prove to be successful  when  compared  to  other  iterative
  564.       methods  on a large number of test problems (Schwefel 77).  They
  565.       are adaptable to nearly all sorts of problems  in  OPTIMIZATION,
  566.       because  they  need  very  little information about the problem,
  567.       esp. no derivatives of the objective function.  For  a  list  of
  568.       some  300 applications of EAs, see the SyS-2/92 report (cf Q14).
  569.       ESs  are  capable  of  solving  high  dimensional,   multimodal,
  570.       nonlinear   problems   subject   to   linear   and/or  nonlinear
  571.       constraints.  The objective  function  can  also,  e.g.  be  the
  572.       result of a SIMULATION, it does not have to be given in a closed
  573.       form.  This also holds for the constraints which  may  represent
  574.       the  outcome  of,  e.g. a finite elements method (FEM). ESs have
  575.       been adapted to VECTOR OPTIMIZATION problems (Kursawe  92),  and
  576.       they can also serve as a heuristic for NP-complete combinatorial
  577.       problems like the TRAVELLING SALESMAN PROBLEM or problems with a
  578.       noisy or changing response surface.
  579.  
  580.       References
  581.  
  582.       Kursawe,   F.   (1992)   "   Evolution   strategies  for  vector
  583.       optimization", Taipei, National Chiao Tung University,  187-193.
  584.  
  585.       Kursawe,  F.  (1994)  "  Evolution  strategies: Simple models of
  586.       natural processes?", Revue Internationale de Systemique,  France
  587.       (to appear).
  588.  
  589.       Rechenberg,    I.   (1973)   "Evolutionsstrategie:   Optimierung
  590.       technischer Systeme nach Prinzipien der biologischen Evolution",
  591.       Stuttgart: Fromman-Holzboog.
  592.  
  593.       Schwefel,    H.-P.    (1977)    "Numerische    Optimierung   von
  594.       Computermodellen  mittels   der   Evolutionsstrategie",   Basel:
  595.       Birkhaeuser.
  596.  
  597.       Schwefel,  H.-P.  (1987)  "Collective Phaenomena in Evolutionary
  598.       Systems", 31st Annu.  Meet.  Inter'l  Soc.  for  General  System
  599.       Research, Budapest, 1025-1033.
  600.  
  601. ------------------------------
  602.  
  603. Subject: Q1.4: What's a Classifier System (CFS)?
  604.  
  605.  The name of the Game
  606.      First,  a word on naming conventions is due, for no other paradigm of
  607.      EC has undergone more changes to  it's  name  space  than  this  one.
  608.      Initially,  Holland  called his cognitive models "Classifier Systems"
  609.      abbrv. with CS, and sometimes CFS, as can be found in [GOLD89].
  610.  
  611.      Whence Riolo came into play in 1986 and Holland added a reinforcement
  612.      component to the overall design of a CFS, that emphasized its ability
  613.      to learn. So, the word "learning" was prepended to the name, to make:
  614.      "Learning  Classifier Systems" (abbrv. to LCS).  On October 6-9, 1992
  615.      the "1st Inter'l Workshop on Learning Classifier Systems" took  place
  616.      at  the  NASA  Johnson  Space Center, Houston, TX.  A summary of this
  617.      "summit" of all leading researchers in LCS can  be  found  on  ENCORE
  618.      (See Q15.3) in file CFS/papers/lcs92.ps.gz
  619.  
  620.      Today, the story continues, LCSs are sometimes subsumed under a "new"
  621.      machine  learning   paradigm   called   "Evolutionary   Reinforcement
  622.      Learning" or ERL for short, incorporating LCSs, "Q-Learning", devised
  623.      by Watkins (1989), and a paradigm of the same name, devised by Ackley
  624.      and Littman [ALIFEIII].
  625.  
  626.  On Schema Processors and ANIMATS
  627.      So,  to  get  back  to the question above, "What are CFSs?", we first
  628.      might answer, "Well, there  are  many  interpretations  of  Holland's
  629.      ideas...what do you like to know in particular?"  And then we'd start
  630.      with a recitation from [HOLLAND75,92], and  explain  all  the  SCHEMA
  631.      processors,  the  broadcast  language, etc.  But, we will take a more
  632.      comprehensive,  and  intuitive  way  to  understand  what  CLASSIFIER
  633.      SYSTEMs are all about.
  634.  
  635.      The easiest road to explore the very nature of CLASSIFIER SYSTEMs, is
  636.      to take the animat (ANIMAl + ROBOT = ANIMAT) "lane" devised by Booker
  637.      (1982)  and  later  studied  extensively  by  Wilson (1985), who also
  638.      coined the term for this approach. Work continues on animats  but  is
  639.      often   regarded   as   ARTIFICIAL   LIFE  rather  than  EVOLUTIONARY
  640.      COMPUTATION.  This thread of research has  even  its  own  conference
  641.      series:  "Simulation  of Adaptive Behavior (SAB)" (cf Q12), including
  642.      other  notions  from  machine   learning,   connectionist   learning,
  643.      evolutionary robotics, etc.  [NB: the latter is obvious, if an animat
  644.      lives in a digital microcosm, it can be put into the  real  world  by
  645.      implantation   into   an   autonomous   robot   vehicle,   that   has
  646.      sensors/detectors  (camera  eyes,  whiskers,  etc.)   and   effectors
  647.      (wheels,  robot  arms,  etc.);  so  all  that's  needed is to use our
  648.      algorithm as the "brain" of this  vehicle,  connecting  the  hardware
  649.      parts  with the software learning component.  For a fascinating intro
  650.      to the field see, e.g. Braitenberg (1984)]
  651.  
  652.      CLASSIFIER SYSTEMs,  however,  are  yet  another  OFFSPRING  of  John
  653.      Holland's  aforementioned  book,  and can be seen as one of the early
  654.      applications of GAs, for CFSs  use  this  evolutionary  algorithm  to
  655.      adapt  their  behavior toward a changing ENVIRONMENT, as is explained
  656.      below in greater detail.
  657.  
  658.      Holland envisioned a cognitive  system  capable  of  classifying  the
  659.      goings  on  in  its ENVIRONMENT, and then reacting to these goings on
  660.      appropriately. So what is needed to build such a  system?  Obviously,
  661.      we  need (1) an environment; (2) receptors that tell our system about
  662.      the goings on; (3) effectors, that  let  our  system  manipulate  its
  663.      environment; and (4) the system itself, conveniently a "black box" in
  664.      this first approach, that has (2) and (3) attached to it, and "lives"
  665.      in (1).
  666.  
  667.      In  the  animat  approach,  (1)  usually  is  an artificially created
  668.      digital world, e.g. in Booker's Gofer system, a  2  dimensional  grid
  669.      that  contains "food" and "poison".  And the Gofer itself, that walks
  670.      across this grid and tries (a) to learn to distinguish between  these
  671.      two items, and (b) survive well fed.
  672.  
  673.      Much  the  same  for  Wilson's  animat, called "*". Yes, it's just an
  674.      asterisk, and a "Kafka-esque naming policy" is one of the sign  posts
  675.      of  the  whole  field;  e.g.  the first implementation by Holland and
  676.      Reitmann 1978 was called CS-1, (cognitive system  1);  Smith's  Poker
  677.      player  LS-1  (1980)  followed  this  "convention".  Riolo's 1988 LCS
  678.      implementations on top of his CFS-C library  (cf  Q20),  were  dubbed
  679.      FSW-1 (Finite State World 1), and LETSEQ-1 (LETter SEQuence predictor
  680.      1).
  681.  
  682.      So from the latter paragraph we can  conclude  that  ENVIRONMENT  can
  683.      also  mean something completely different (e.g. an infinite stream of
  684.      letters, time serieses,  etc.)  than  in  the  animat  approach,  but
  685.      anyway; we'll stick to it, and go on.
  686.  
  687.      Imagine  a  very  simple  animat,  e.g. a simplified model of a frog.
  688.      Now, we know that frogs live in  (a)  Muppet  Shows,  or  (b)  little
  689.      ponds;  so  we  chose the latter as our demo ENVIRONMENT (1); and the
  690.      former for a non-Kafka-esque name of  our  model,  so  let's  dub  it
  691.      "Kermit".
  692.  
  693.      Kermit  has eyes, i.e. sensorial input detectors (2); hands and legs,
  694.      i.e.   environment-manipulating  effectors  (3);  is   a   spicy-fly-
  695.      detecting-and-eating  device,  i.e.  a  frog (4); so we got all the 4
  696.      pieces needed.
  697.  
  698.  Inside the Black Box
  699.      The most primitive "black box" we can think of is a computer.  It has
  700.      inputs  (2), and outputs (3), and a message passing system inbetween,
  701.      that converts (i.e., computes), certain input  messages  into  output
  702.      messages,  according  to a set of rules, usually called the "program"
  703.      of that computer.  From the theory of computer science, we now borrow
  704.      the  simplest  of  all  program  structures, that is something called
  705.      "production system" or PS for short.  A  PS  has  been  shown  to  be
  706.      computationally  complete  by Post (1943), that's why it is sometimes
  707.      called a "Post System", and later  by  Minsky  (1967).   Although  it
  708.      merely consists of a set of if-then rules, it still resembles a full-
  709.      fledged computer.
  710.  
  711.      We now term a single "if-then" rule  a  "classifier",  and  choose  a
  712.      representation that makes it easy to manipulate these, for example by
  713.      encoding  them  into  binary  strings.   We  then  term  the  set  of
  714.      classifiers,  a  "classifier population", and immediately know how to
  715.      breed new rules for our  system:  just  use  a  GA  to  generate  new
  716.      rules/classifiers from the current POPULATION!
  717.  
  718.      All  that's  left  are  the  messages floating through the black box.
  719.      They should also be simple strings of zeroes and ones, and are to  be
  720.      kept in a data structure, we call "the message list".
  721.  
  722.      With  all  this  given, we can imagine the goings on inside the black
  723.      box as follows: The input interface (2) generates messages, i.e., 0/1
  724.      strings,  that  are  written on the message list. Then these messages
  725.      are matched against the condition-part of all  classifiers,  to  find
  726.      out  which  actions  are  to  be triggered.  The message list is then
  727.      emptied, and the  encoded  actions,  themselves  just  messages,  are
  728.      posted  to  the  message list.  Then, the output interface (3) checks
  729.      the message list for messages concerning the effectors. And the cycle
  730.      restarts.
  731.  
  732.      Note, that it is possible in this set-up to have "internal messages",
  733.      because the message list is not emptied after (3) has checked;  thus,
  734.      the  input  interface messages are added to the initially empty list.
  735.      (cf Algorithm CFS, LCS below)
  736.  
  737.      The general idea of the CFS is to  start  from  scratch,  i.e.,  from
  738.      tabula  rasa  (without  any  knowledge)  using  a  randomly generated
  739.      classifier POPULATION, and  let  the  system  learn  its  program  by
  740.      induction, (cf Holland et al. 1986), this reduces the input stream to
  741.      recurrent input patterns, that must be repeated over and over  again,
  742.      to  enable  the  animat to classify its current situation/context and
  743.      react on the goings on appropriately.
  744.  
  745.  What does it need to be a frog?
  746.      Let's take a look at the behavior emitted by Kermit. It lives in  its
  747.      digital  microwilderness  where  it moves around randomly.  [NB: This
  748.      seemingly "random" behavior is not that random at all;  for  more  on
  749.      instinctive,  i.e.,  innate  behavior  of non-artificial animals see,
  750.      e.g.  Tinbergen (1951)]
  751.  
  752.      Whenever a small flying object appears, that has no  stripes,  Kermit
  753.      should  eat it, because it's very likely a spicy fly, or other flying
  754.      insect.  If it has stripes, the insect is better left alone,  because
  755.      Kermit had better not bother with wasps, hornets, or bees.  If Kermit
  756.      encounters a large, looming object, it immediately uses its effectors
  757.      to jump away, as far as possible.
  758.  
  759.      So,  part  of  these behavior patterns within the "pond world", in AI
  760.      sometimes called a "frame," from traditional knowledge representation
  761.      techniques, Rich (1983), can be expressed in a set of "if <condition>
  762.      then <action>" rules, as follows:
  763.  
  764.       IF small, flying object to the left THEN send @
  765.       IF small, flying object to the right THEN send %
  766.       IF small, flying object centered THEN send $
  767.       IF large, looming object THEN send !
  768.       IF no large, looming object THEN send *
  769.       IF * and @ THEN move head 15 degrees left
  770.       IF * and % THEN move head 15 degrees right
  771.       IF * and $ THEN move in direction head pointing
  772.       IF ! THEN move rapidly away from direction head pointing
  773.  
  774.      Now, this set of rules has to be encoded for use within a  CLASSIFIER
  775.      SYSTEM.   A  possible encoding of the above rule set in CFS-C (Riolo)
  776.      classifier  terminology.  The  condition   part   consists   of   two
  777.      conditions,  that  are  combined with a logical AND, thus must be met
  778.      both to trigger the associated action. This  structure  needs  a  NOT
  779.      operation,  (so  we  get NAND, and know from hardware design, that we
  780.      can build any computer solely with NANDs), in CFS-C this  is  denoted
  781.      by the `~' prefix character (rule #5).
  782.  
  783.       IF             THEN
  784.        0000,  00 00  00 00
  785.        0000,  00 01  00 01
  786.        0000,  00 10  00 10
  787.        1111,  01 ##  11 11
  788.       ~1111,  01 ##  10 00
  789.        1000,  00 00  01 00
  790.        1000,  00 01  01 01
  791.        1000,  00 10  01 10
  792.        1111,  ## ##  01 11
  793.  
  794.      Obviously,  string `0000' denotes small, and `00' in the fist part of
  795.      the second column, denotes flying.  The last two bits  of  column  #2
  796.      encode  the  direction  of  the  object approaching, where `00' means
  797.      left, `01' means right, etc.
  798.  
  799.      In rule #4 a the "don't care symbol" `#' is used,  that  matches  `1'
  800.      and  `0',  i.e.,  the  position  of  the  large,  looming  object, is
  801.      completely  arbitrary.  A  simple  fact,  that  can   save   Kermit's
  802.      (artificial) life.
  803.  PSEUDO CODE (Non-Learning CFS)
  804.      Algorithm CFS is
  805.  
  806.       // start with an initial time
  807.       t := 0;
  808.  
  809.       // an initially empty message list
  810.       initMessageList ML (t);
  811.  
  812.       // and a randomly generated population of classifiers
  813.       initClassifierPopulation P (t);
  814.  
  815.       // test for cycle termination criterion (time, fitness, etc.)
  816.       while not done do
  817.  
  818.            // increase the time counter
  819.            t := t + 1;
  820.  
  821.            // 1. detectors check whether input messages are present
  822.            ML := readDetectors (t);
  823.  
  824.            // 2. compare ML to the classifiers and save matches
  825.            ML' := matchClassifiers ML,P (t);
  826.  
  827.            // 3. process new messages through output interface
  828.            ML := sendEffectors ML' (t);
  829.       od
  830.      end CFS.
  831.  
  832.      To  convert the previous, non-learning CFS into a learning CLASSIFIER
  833.      SYSTEM, LCS, as has been proposed in Holland  (1986),  it  takes  two
  834.      steps:
  835.  
  836.      (1)   the  major  cycle has to be changed such that the activation of
  837.        each classifier depends on some additional parameter, that  can
  838.        be  modified as a result of experience, i.e. reinforcement from
  839.        the ENVIRONMENT;
  840.  
  841.      (2)   and/or change  the  contents  of  the  classifier  list,  i.e.,
  842.        generate   new   classifiers/rules,  by  removing,  adding,  or
  843.        combining condition/action-parts of existing classifiers.
  844.  
  845.        The algorithm thus changes accordingly:
  846.  
  847.  PSEUDO CODE (Learning CFS)
  848.      Algorithm LCS is
  849.  
  850.       // start with an initial time
  851.       t := 0;
  852.  
  853.       // an initially empty message list
  854.       initMessageList ML (t);
  855.  
  856.       // and a randomly generated population of classifiers
  857.       initClassifierPopulation P (t);
  858.  
  859.       // test for cycle termination criterion (time, fitness, etc.)
  860.       while not done do
  861.  
  862.            // increase the time counter
  863.            t := t + 1;
  864.  
  865.            // 1. detectors check whether input messages are present
  866.            ML := readDetectors (t);
  867.  
  868.            // 2. compare ML to the classifiers and save matches
  869.            ML' := matchClassifiers ML,P (t);
  870.  
  871.            // 3. highest bidding classifier(s) collected in ML' wins the
  872.            // "race" and post the(ir) message(s)
  873.            ML' := selectMatchingClassifiers ML',P (t);
  874.  
  875.            // 4. tax bidding classifiers, reduce their strength
  876.            ML' := taxPostingClassifiers ML',P (t);
  877.  
  878.            // 5. effectors check new message list for output msgs
  879.            ML := sendEffectors ML' (t);
  880.  
  881.            // 6. receive payoff from environment (REINFORCEMENT)
  882.            C := receivePayoff (t);
  883.  
  884.            // 7. distribute payoff/credit to classifiers (e.g. BBA)
  885.            P' := distributeCredit C,P (t);
  886.  
  887.            // 8. Eventually (depending on t), an EA (usually a GA) is
  888.            // applied to the classifier population
  889.            if criterion then
  890.             P := generateNewRules P' (t);
  891.            else
  892.             P := P'
  893.       od
  894.      end LCS.
  895.  
  896.  What's the problem with CFSs?
  897.      Just to list the currently known problems that come with CFSs,  would
  898.      take  some  additional  pages; therefore only some interesting papers
  899.      dealing with unresolved riddles are listed; probably the  best  paper
  900.      containing  most  of  these  is the aforementioned summary of the LCS
  901.      Workshop:
  902.  
  903.      Smith, R.E. (1992) "A report on the first Inter'l Workshop  on  LCSs"
  904.      avail. from ENCORE (See Q15.3) in file CFS/papers/lcs92.ps.gz
  905.  
  906.      Other noteworthy critiques on LCSs include:
  907.  
  908.      Wilson,  S.W.  (1987)  "Classifier  Systems  and  the Animat Problem"
  909.      Machine Learning, 2.
  910.  
  911.      Wilson, S.W. (1988) "Bid Competition  and  Specificity  Reconsidered"
  912.      Complex Systems, 2(5):705-723.
  913.  
  914.      Wilson, S.W. & Goldberg, D.E. (1989) "A critical review of classifier
  915.      systems" [ICGA89], 244-255.
  916.  
  917.      Goldberg, D.E., Horn, J. & Deb, K. (1992) "What makes a problem  hard
  918.      for  a  classifier system?"  (containing the Goldberg citation below)
  919.      is   also   available   from   ENCORE    (See    Q15.3)    in    file
  920.      CFS/papers/lcs92-2.ps.gz
  921.  
  922.      Dorigo,  M.  (1993)  "Genetic  and  Non-genetic Operators in ALECSYS"
  923.      EVOLUTIONARY COMPUTATION, 1(2):151-164.  The  technical  report,  the
  924.      journal article is based on is avail. from ENCORE (See Q15.3) in file
  925.      CFS/papers/icsi92.ps.gz
  926.  
  927.      Smith, R.E. Forrest,  S.  &  Perelson,  A.S.  (1993)  "Searching  for
  928.      Diverse,    Cooperative    POPULATIONs   with   Genetic   Algorithms"
  929.      EVOLUTIONARY COMPUTATION, 1(2):127-149.
  930.  
  931.  Conclusions?
  932.      Generally speaking:
  933.       "There's much to do in CFS research!"
  934.  
  935.      No other notion of EC provides more space to explore and if  you  are
  936.      interested  in  a  PhD  in the field, you might want to take a closer
  937.      look at CFS.  However, be warned!,  to  quote  Goldberg:  "classifier
  938.      systems   are   a  quagmire---a  glorious,  wondrous,  and  inventing
  939.      quagmire, but a quagmire nonetheless."
  940.  
  941.      References
  942.  
  943.      Booker, L.B. (1982) "Intelligent behavior as an adaption to the  task
  944.      environment"  PhD Dissertation, Univ. of Michigan, Logic of Computers
  945.      Group, Ann Arbor, MI.
  946.  
  947.      Braitenberg,  V.   (1984)   "Vehicles:   Experiments   in   Synthetic
  948.      Psychology" Boston, MA: MIT Press.
  949.  
  950.      Holland,  J.H.  (1986)  "Escaping  Brittleness:  The possibilities of
  951.      general-purpose learning algorithms applied  to  parallel  rule-based
  952.      systems".  In:  R.S. Michalski, J.G. Carbonell & T.M. Mitchell (eds),
  953.      Machine  Learning:  An  ARTIFICIAL  INTELLIGENCE  approach,  Vol  II,
  954.      593-623, Los Altos, CA: Morgan Kaufman.
  955.  
  956.      Holland,  J.H.,  et  al.  (1986)  "Induction: Processes of Inference,
  957.      Learning, and Discovery", Cambridge, MA: MIT Press.
  958.  
  959.      Holland, J.H. (1992) "Adaptation in natural and  artificial  systems"
  960.      Boston, MA: MIT Press.
  961.  
  962.      Holland,  J.H.  &  Reitman,  J.S.  (1978) "Cognitive Systems based on
  963.      Adaptive Algorithms" In D.A. Waterman & F.Hayes-Roth, (eds)  Pattern-
  964.      directed inference systems. NY: Academic Press.
  965.  
  966.      Minsky,   M.L.   (1961)   "Steps   toward   Artificial  Intelligence"
  967.      Proceedings IRE, 49, 8-30. Reprinted in E.A. Feigenbaum & J.  Feldman
  968.      (eds) Computers and Thought, 406-450, NY: McGraw-Hill, 1963.
  969.  
  970.      Minsky,  M.L.  (1967)  "Computation:  Finite  and  Infinite Machines"
  971.      Englewood Cliffs, NJ: Prentice-Hall.
  972.  
  973.      Post, E.L. (1943) "Formal reductions  of  the  general  combinatorial
  974.      decision problem" American Journal of Mathematics, 65, 197-268.
  975.  
  976.      Rich, E. (1983) "Artificial Intelligence" NY: McGraw-Hill.
  977.  
  978.      Tinbergen,  N. (1951) "The Study of Instinct" NY: Oxford Univ. Press.
  979.  
  980.      Watkins, C. (1989) "Learning from Delayed Rewards" PhD  Dissertation,
  981.      Department of Psychology, Cambridge Univ., UK.
  982.  
  983.      Wilson,  S.W.  (1985)  "Knowledge  growth in an artificial animal" in
  984.      [ICGA85], 16-23.
  985.  
  986. ------------------------------
  987.  
  988. Subject: Q1.5: What's Genetic Programming (GP)?
  989.  
  990.      GENETIC PROGRAMMING is the extension of the genetic model of learning
  991.      into  the space of programs. That is, the objects that constitute the
  992.      POPULATION  are  not  fixed-length  character  strings  that   encode
  993.      possible  solutions  to  the problem at hand, they are programs that,
  994.      when executed, "are" the candidate solutions to  the  problem.  These
  995.      programs  are expressed in genetic programming as parse trees, rather
  996.      than as lines of code.  Thus, for example, the simple program "a +  b
  997.      * c" would be represented as:
  998.  
  999.          +
  1000.         / \
  1001.         a  *
  1002.          / \
  1003.          b  c
  1004.  
  1005.      or,  to  be  precise,  as suitable data structures linked together to
  1006.      achieve this effect. Because this is a very simple thing to do in the
  1007.      programming language Lisp, many GPers tend to use Lisp. However, this
  1008.      is simply an implementation detail. There are straightforward methods
  1009.      to implement GP using a non-Lisp programming ENVIRONMENT.
  1010.  
  1011.      The  programs  in  the  POPULATION  are composed of elements from the
  1012.      FUNCTION SET and the TERMINAL SET, which are typically fixed sets  of
  1013.      symbols selected to be appropriate to the solution of problems in the
  1014.      domain of interest.
  1015.  
  1016.      In GP the CROSSOVER  operation  is  implemented  by  taking  randomly
  1017.      selected  subtrees in the INDIVIDUALs (selected according to FITNESS)
  1018.      and exchanging them.
  1019.  
  1020.      It should be pointed out that GP usually does not use any MUTATION as
  1021.      a GENETIC OPERATOR.
  1022.  
  1023. ------------------------------
  1024.  
  1025. End of ai-faq/genetic/part2
  1026. ***************************
  1027.  
  1028.